Time-based automatic video feed selection for a digital video production system

ABSTRACT

A video production device is deployed to produce a video production stream of an event occurring within an environment that includes a plurality of different video capture devices capturing respective video input streams of the event. The video production device is programmed and operated to: receive a plurality of video input streams from the plurality of different video capture devices; automatically sequence through the streams to select one of them as a current video output stream, in accordance with a predetermined switching sequence associated with the video capture devices; and provide the selected stream as the current video output stream for a designated time interval associated with the video capture device that captured the selected video input stream.

CROSS-REFERENCE TO PRIORITY APPLICATION

This application claims the benefit of, and priority to, Indiaprovisional application number 201941030739, filed Jul. 30, 2019.

TECHNICAL FIELD

Embodiments of the subject matter described herein relate generally tothe production of digital video content. More particularly, embodimentsof the subject matter relate to a system and related operatingmethodologies that automatically select one or more video feeds to beused for video processing, streaming, and/or programming.

BACKGROUND

Recent years have seen an explosion in the creation and enjoyment ofdigital video content. Millions of people around the world now carrymobile phones, cameras, or other devices that are capable of capturinghigh quality video and/or of playing back video streams in a convenientmanner. Moreover, Internet sites such as YOUTUBE have providedconvenient and economical sharing of live-captured video, therebyleading to an even greater demand for live video content.

More recently, video production systems have been created that allowgroups of relatively non-professional users to capture one or more videofeeds, to select one of the video feeds for an output stream, and tothereby produce a professional-style video of the output stream forviewing, sharing, publication, archiving and/or other purposes. Many ofthese systems rely upon Wi-Fi, Bluetooth, and/or other wirelesscommunications for sharing of video feeds, control instructions and thelike. A “producer” can operate a controller device that displays each ofthe available video feeds to select which video feed is to be displayedor processed at any given time. If all of the video capture devices areco-located and operated to capture the same event, then the producer canmonitor the video feeds and manually select one of them as the currentlyfocused feed.

In a practical deployment, however, it would be desirable toautomatically select the currently focused video feed in an intelligentmanner. An automatic selection methodology can reduce the workload ofthe producer and in certain situations can more accurately select apreferred video feed from a group of feeds that include the samecontent. Furthermore, other desirable features and characteristics willbecome apparent from the subsequent detailed description and theappended claims, taken in conjunction with the accompanying drawings andthe foregoing technical field and background.

BRIEF SUMMARY

Disclosed here is an automated method of controlling a video productiondevice that produces a video production stream of an event from aplurality of video input streams that are captured by a plurality ofdifferent video capture devices. An exemplary embodiment of the methodinvolves the steps of: receiving the plurality of video input streamsfrom the plurality of different video capture devices; automaticallysequencing through the plurality of video input streams to select one ofthe plurality of video input streams as a current video output stream,in accordance with a predetermined switching sequence associated withthe plurality of different video capture devices; and providing theselected video input stream as the current video output stream for adesignated time interval associated with the video capture device thatcaptured the selected video input stream, wherein each of the differentvideo capture devices is associated with a respective time interval. Thecurrent video output stream can be produced for storage or livestreaming. In certain embodiments, the event is captured by N differentvideo capture devices, and the predetermined switching sequenceidentifies each of the N different video capture devices at least once.In certain embodiments, the event is captured by N different videocapture devices, and the predetermined switching sequence identifiesless than N of the different video capture devices.

Another exemplary embodiment of the method involves the steps of:receiving the plurality of video input streams from the plurality ofdifferent video capture devices; randomly selecting one of the pluralityof video input streams as a current video output stream; and providingthe randomly selected video input stream as the current video outputstream for a designated time interval associated with the video capturedevice that captured the selected video input stream. In certainembodiments, each of the plurality of video input streams is selectedonce for each switching sequence. In certain embodiments, the designatedtime interval is randomly assigned.

Another exemplary embodiment of the method involves the steps of:receiving the plurality of video input streams from the plurality ofdifferent video capture devices; automatically selecting one of theplurality of video input streams as a current video output stream, inaccordance with an audio based switching technique that identifies whichof the plurality of video input streams is associated with a detectedspeaker; and providing the selected video input stream as the currentvideo output stream. In certain embodiments, the audio based switchingtechnique considers instantaneous root mean square energy of each audiostream, average root mean square energy of each audio stream over agiven time period, and relative energy thresholds for each of the videocapture devices.

Another exemplary embodiment of the method involves the steps of:receiving the plurality of video input streams from the plurality ofdifferent video capture devices; automatically selecting one of theplurality of video input streams as a current video output stream, inaccordance with a visual activity based switching technique thatidentifies which of the plurality of video input streams is associatedwith a detected speaker; and providing the selected video input streamas the current video output stream. In certain embodiments, the visualactivity based switching technique identifies and analyzes facialfeatures and characteristics captured in the plurality of video inputstreams. In certain embodiments, the visual activity based switchingtechnique identifies lip and mouth positions and calculates a distanceratio from the lip and mouth positions to identify which of theplurality of video input streams is associated with a detected speaker.In certain embodiments, the visual activity based switching techniqueidentifies which of the plurality of video input streams is associatedwith a detected speaker based on a variation in a distance ratio givenby the expression

$\frac{\left( {V_{T} - V_{B}} \right)}{\left( {H_{L} - H_{R}} \right)},$

wherein H_(L) and H_(R) denote the positions of the corners of the mouthon the left and right sides, and V_(T) and V_(B) denote the positions ofthe top and bottom parts of the lips.

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the detaileddescription. This summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the subject matter may be derived byreferring to the detailed description and claims when considered inconjunction with the following figures, wherein like reference numbersrefer to similar elements throughout the figures.

FIG. 1 is a schematic block diagram representation of a digital videoproduction system that is arranged and configured in accordance with anexemplary embodiment of the invention;

FIG. 2 is a flow chart that illustrates an exemplary embodiment of amethod for operating a video production system;

FIG. 3 is a flow chart that illustrates tasks associated with atime-based or scheduled camera switching methodology;

FIG. 4 is a flow chart that illustrates tasks associated with anaudio-based camera switching methodology; and

FIG. 5 is a flow chart that illustrates tasks associated with a cameraswitching methodology that is based on detected facial features.

DETAILED DESCRIPTION

The following detailed description is merely illustrative in nature andis not intended to limit the embodiments of the subject matter or theapplication and uses of such embodiments. As used herein, the word“exemplary” means “serving as an example, instance, or illustration.”Any implementation described herein as exemplary is not necessarily tobe construed as preferred or advantageous over other implementations.Furthermore, there is no intention to be bound by any expressed orimplied theory presented in the preceding technical field, background,brief summary or the following detailed description.

Techniques and technologies may be described herein in terms offunctional and/or logical block components, and with reference tosymbolic representations of operations, processing tasks, and functionsthat may be performed by various computing components or devices. Suchoperations, tasks, and functions are sometimes referred to as beingcomputer-executed, computerized, software-implemented, orcomputer-implemented. It should be appreciated that the various blockcomponents shown in the figures may be realized by any number ofhardware, software, and/or firmware components configured to perform thespecified functions. For example, an embodiment of a system or acomponent may employ various integrated circuit components, e.g., memoryelements, digital signal processing elements, logic elements, look-uptables, or the like, which may carry out a variety of functions underthe control of one or more microprocessors or other control devices.

When implemented in software or firmware, various elements of thesystems described herein are essentially the code segments orinstructions that perform the various tasks. In certain embodiments, theprogram or code segments are stored in a tangible processor-readablemedium, which may include any medium that can store or transferinformation. Examples of a non-transitory and processor-readable mediuminclude an electronic circuit, a semiconductor memory device, a ROM, aflash memory, an erasable ROM (EROM), a floppy diskette, a CD-ROM, anoptical disk, a hard disk, or the like.

Various embodiments improve operation of a digital video productionsystem by automatically selecting (switching to) one video feed from aplurality of different video feeds, wherein the selected video feed issubjected to production, live streaming, or the like. The embodimentsdescribed here are particularly suitable for use in a system havingmultiple video capture devices operating concurrently to capture videoof the same ongoing event of interest. For example, the digital videoproduction system can be deployed in a setting such as a wedding, aconcert, or a sporting event where a plurality of client devices (thevideo capture devices) are operated by different members of theaudience. A video feed can be automatically selected using one or moreof the following techniques, which are described in more detail below:(1) time based, which may be scheduled or randomized; (2) audio based;(3) video based; (4) audio/video hybrid based. In practice, theseaspects may be modified, omitted and/or enhanced as desired across awide array of alternate but equivalent embodiments.

The general concepts described herein may be implemented in any videoproduction context, especially the capture and encoding or transcodingof live video. For convenience of illustration, the following discussionoften refers to a video production system in which one or more livevideo streams are received from one or more cameras or other capturedevices via a wireless or wired network to produce an output videostream for publication, live streaming, or other sharing. Equivalentembodiments could be implemented within other contexts, settings orapplications as desired.

Turning now to the drawings and with initial reference to FIG. 1, anexemplary embodiment of a digital video production system 100 includes,without limitation: a video production device 110; a plurality of videocapture devices 160; a control device 130; and a hosting or distributionserver system 250. The video production device 110, the video capturedevices 160, and the control device 130 are all located within networkcommunication range of each other. That said, it is not necessary thatthe control device 130 be located within the same environment as thevideo production device 110 and the video capture devices 160, becauseInternet or other communication methodologies may allow the controldevice 130 to communicate with the video production device 110 fromother locations, as desired.

The video production system 100 can be used to produce a video programbased upon selected inputs from multiple input video feeds. In theillustrated example, the video production device 110 includes a wirelessaccess point 215 and an encoder 216 with appropriate encoding hardwareto encode video programming based upon instructions received from thecontrol device 130. The encoded video program may be initially stored asa file on an external storage device 220 (e.g., a memory card, harddrive, or other non-volatile storage) for eventual uploading to thehosting or distribution server system 250 operating on the Internet oranother network 205. The hosting or distribution server system issuitably configured and operated to support or provide various services,such as YOUTUBE, FACEBOOK, USTREAM, TWITCH, MIXER, etc. Although theillustrated embodiment of the video production device 110 includeswireless access point and encoder functionality, equivalent embodimentscould split the encoding and access point functions and employ more thanone hardware device (instead of a single video production device 110).

The video production device 110 can be a processor or computer basedcomponent that includes processing hardware such as a microprocessor211, memory 212, and input/output interfaces 213 (including a suitableUSB or other interface to the external storage 220). The exampleillustrated in FIG. 1 shows the video production device 110 includingprocessing logic to implement an IEEE 802.11, 802.14 or other wirelessaccess point 215 for communicating with any number of video capturedevices 160, which could include any number of mobile phones, tablets,or similar devices executing a video capture application 262, asdesired. The video capture devices 160 could also include one or moreconventional video cameras 264 that interact with the video productiondevice via an interface device that receives DVI or other video inputsand transmits the received video to the video production device 110 viaa Wi-Fi, Bluetooth, or other wireless network, as appropriate. Otherembodiments could facilitate communications with any other types ofvideo capture devices in any other manner.

The video production device 110 is also shown to include a controller214 and an encoder 216, as appropriate. The controller 214 and/or theencoder 216 may be implemented as software logic stored in memory 212and executing on processor 211 in some embodiments. The controller 214may be implemented as a control application executing on the processor211, for example, that includes logic 217 for implementing the variousfunctions, features, and operations described here. Other embodimentsmay implement the various functions and features using hardware,software, and/or firmware logic executing on other components, asdesired. The encoder 216, for example, may be implemented using adedicated video encoder chip in some embodiments.

In various embodiments, the video production device 110 operates inresponse to user inputs supplied by the control device 130. The controldevice 130 is any sort of computing device that includes conventionalprocessor 231, memory 232, and input/output 233 features. Variousembodiments could implement the control device 130 as a tablet, laptop,or other computer system, for example, or as a mobile phone or othercomputing device that executes a software control application 240 forcontrolling the functions of the video production device 110. Typically,the control device 130 interacts with the video production device 110via a wireless network 205, although wired connections could beequivalently used. Although FIG. 1 shows the network 205 as beingseparate from the wireless connections between the video productiondevice 110 and the video capture devices 160, in practice the same Wi-Fior other networks could be used if sufficient bandwidth is available.Other embodiments may use any other network configuration desired,including any number of additional or alternate networks or other datalinks.

The example illustrated in FIG. 1 shows the control application 240having an interface that shows various video feeds received from some orall of the video capture devices 160, and that lets the user select anappropriate feed to encode into the finished product. The controlapplication 240 may include other displays to control other behaviors orfeatures of the system 100, as desired. In the illustrated example, agraphical user interface 246 illustrating the operating environment orlayout of the video capture devices 160 is shown at the same time as thecaptured imagery, albeit in a separate portion of the display. Inpractice, however, the interface 246 may equivalently be presented on aseparate screen or image than the captured content for largerpresentation or ease of viewing. The interface 246 could be equivalentlypresented in a dashboard or similar view that presents system or devicestatus information, as desired. Again, the presentation and appearanceof the interface 246 may be very different in other embodiments, and mayincorporate any different types of information or content arranged inany manner.

In operation, then, a user acting as a video producer would use thecontrol application 240 running on the control device 130 to view thevarious video feeds that are available from one or more video capturedevices 160. The video production device 110 receives the correspondingvideo feed from the selected capture device. The video production device110 compresses or otherwise encodes the selected video data in anappropriate format for eventual viewing or distribution, e.g., via anInternet or other service provided by the hosting or distribution serversystem 250.

In various embodiments, the user interface 246 includes a graphicalrepresentation of a map or other physical layout of the operatingenvironment. Additional information presented in the user interface 246may be visually overlaid upon a map, drawing, camera image or othergraphic if desired, if such graphics are available. In otherembodiments, the control application 240 or the like could provide agraphical interface that allows the producer/user to draw an image ofthe physical environment, as desired. If the video production isintended to show a basketball game, for example, it may be desirable todraw the court floor, sidelines, baskets, etc. for later reference. Ifgraphical imagery is not available, however, the relative locations ofthe different entities operating within the system may still be useful.

Location information is transmitted to the video production device 110on any regular or irregular temporal basis, and the user interface 246is updated as desired so that the producer user can view the locationsof the various video capture devices 160. Location information can beuseful in knowing which camera angles or shots are available so thatdifferent cameras can be selected for preview imagery and/or for theoutput stream. If a video production application is only capable ofdisplaying four potential video feeds, for example, but more than fourcameras are currently active in the system, then the locations of thevarious cameras may be helpful in selecting those cameras most likely tohave content feeds that are of interest. Location information can alsobe useful in determining communication signal strength. Otherembodiments may make use of additional benefits derived from knowingand/or presenting the locations of devices operating within the system,as more fully described herein.

As mentioned above, a user of the control device 130 can manually selectwhich video feed provides the video content for production, streaming,and the like. Alternatively, the video production system 100 can besuitably configured to support one or more automatic switching/selectiontechniques to automatically designate which video feed is to be used.Automatically selecting a video capture device 160 (or its video feed)as the output of the video production device 110 is based on certaincriteria, which may vary from one implementation to another. Thisdescription contemplates a variety of methodologies, and any or all ofthem can be supported by an embodiment of the system 100.

FIG. 2 is a flow chart that illustrates an exemplary embodiment of amethod for operating a video production system. More specifically, FIG.2 illustrates a process 300 for automated camera selection and switchingin the context of a video production system of the type mentionedpreviously. The various tasks performed in connection with a processdescribed herein may be performed by software, hardware, firmware, orany combination thereof. For illustrative purposes, the description of aprocess may refer to elements mentioned above in connection with FIG. 1.In practice, portions of a described process may be performed bydifferent elements of the described system, e.g., the video productiondevice 110, the control device 130, one or more of the video capturedevices 160, or the like. It should be appreciated that an embodiment ofa described process may include any number of additional or alternativetasks, the tasks shown in the figures need not be performed in theillustrated order, and a described process may be incorporated into amore comprehensive procedure or process having additional functionalitynot described in detail herein. Moreover, one or more of the tasks shownin a figure could be omitted from an embodiment of the illustratedprocess as long as the intended overall functionality remains intact.

The following description of the process 300 assumes that multiple videocapture devices (cameras) are capturing video of the same event.Accordingly, the process receives multiple video feeds capturing thesame event (task 302). For the exemplary embodiment described here, thevideo feeds are received at the video production device 110 forencoding, processing, and handling as needed. The process 300 continuesby analyzing the audio content and/or the visual content conveyed in theindividual video feeds (task 304). In certain embodiments, task 304 isperformed by the video production device 110. As mentioned above,however, some or all of the processor-intensive video data analysis maybe performed by the video capture devices 160.

In response to the analysis performed at task 304, the processautomatically selects one of the video feeds for use as the currentvideo output stream (task 306). The selected video feed can be providedas a live or substantially live video stream to any number of end users,or it can be recorded/stored for subsequent processing or editing. Inthis regard, the selected video feed data can be stored at the videoproduction device 110, at the control device 130, at the hosting ordistribution server system 250, at the source video capture devices 160,and/or elsewhere in the system if so desired. Task 306 employs at leastone of the automatic selection techniques described above. The selectedvideo feed can be provided or otherwise used as the current video outputstream for a designated time interval (task 308). As describedpreviously, the system may be configured to cycle through the availablevideo feeds according to a predetermined schedule, in a random order, ina pseudorandom order, or the like, and with predetermined, random, orpseudorandom time intervals associated with the different video capturedevices.

If the process 300 determines that it is time to switch cameras (the“Yes” branch of query task 310), then the next video feed isautomatically selected according to the particular methodology used bythe system. In other words, the process 300 returns to task 306. If itis not time to switch cameras (the “No” branch of query task 310), thenthe currently selected video feed remains active as the designated videooutput stream. In other words, the process 300 returns to task 308 andcontinues as described above.

Time Based Selection—Scheduled

In accordance with this methodology, different video capture devices 160are automatically selected at designated time intervals, or based on apreset schedule. The switching or cycling order can be configured by theuser, it can be preset by a component of the video production system100, or it can be randomly selected and saved by the control device 130,the video production device 110, or another device in the videoproduction system 100. Similarly, the individual time intervals for eachvideo capture device 160 can be set by the user, they can be preset by acomponent of the system 100, or they can be randomly assigned by acomponent of the system 100. As one example, assume that there are fourvideo capture devices (Camera 1, Camera 2, Camera 3, and Camera 4), withassigned time intervals (T1, T2, T3, and T4, respectively). A switchingsequence can be automatically carried out in the following manner:switch to Camera 1 and process its video feed for the time interval T1;then switch to Camera 2 and process its video feed for the time intervalT2; then switch to Camera 3 and process its video feed for the timeinterval T3; switch to Camera 4 and process its video for the timeinterval T4; and repeat as needed.

The individual time intervals can be designated by the operator in anyappropriate manner. Moreover, the switching order need not include allof the available video capture devices. For example, if there are sixvideo capture devices 160 operating in the area, the system 100 can beconfigured to cycle through only three of them for a given period oftime. Thereafter, the system 100 might be programmed to cycle through adifferent subset of the six video capture devices 160. The particularautomatic switching sequence followed by the video production system 100can be configured and set in any desired manner that is supported by thefeatures and functionality of the control device 130.

FIG. 3 is a flow chart that illustrates tasks associated with atime-based or scheduled camera switching process 400. The illustratedembodiment of the process 400 configures a switching sequence thatincludes or is otherwise associated with the video capture devices (task402). Task 402 may be automatically performed or it may involve a useror operator of the system. Once the switching sequence has beenconfigured or defined, it can serve as the predetermined switchingsequence during operation of the video production system. In certainembodiments, the event is captured by N different video capture devices,and the predetermined switching sequence is configured to identify eachof the N different video capture devices at least once. Alternatively,the predetermined switching sequence can be defined to identify lessthan N of the different video capture devices. For example, two camerasmay be deemed to be redundant, a camera may be of low quality, or acamera may be capturing the event from an undesirable location; in theseand other situations one or more cameras can be omitted without penalty.In such situations, the operator/producer may choose to disregard one ormore of the available cameras. The process 400 may also configure ordefine the time intervals for each of the video capture devices in theswitching sequence (task 404). In practice, the time intervalsassociated with the video capture devices can be user-configurable,automatically defined, randomly assigned, or the like. In certainembodiments, a minimum length of time and/or a maximum length of time isused when defining each time interval.

The process 400 continues by automatically sequencing through the videoinput streams in accordance with the predetermined switching sequence,which corresponds to the different video capture devices. To this end,the process 400 automatically selects one of the video capture devicesand its associated video input stream (task 406). The selected videostream serves as the current video output stream, which is provided forthe designated time interval that is associated with the originatingvideo capture device (task 408). At the end of the current timeinterval, camera switching is triggered (the “Yes” branch of query task410), the process 400 automatically selects the next video capturedevice in the switching sequence (task 412), and the process 400provides the corresponding video stream as the output stream forproduction or editing.

Time Based Selection—Randomized

Rather than following a predetermined switching schedule as described inthe previous section of this description, the different video capturedevices 160 can be selected in a wholly or partially randomized manner.In a wholly randomized implementation, the video capture device 160(which is to be used for production or streaming) is randomly selected.Moreover, if the selected video capture device 160 has a variable timeinterval associated with it, then that particular time interval can berandomly set. To avoid selecting any given video capture device 160 morethan the others, the system can be designed to ensure that all of theavailable (or designated) video capture devices 160 are used during onecycle or iteration, but in a random order. In a partially randomizedimplementation, either the switching order or the time intervals (butnot both) are randomized. For example, the time intervals assigned toeach video capture device 160 may be the same (or be fixed by asetting), with the switching order randomized. As another example, theswitching order can be fixed, with any or all of the time intervalsbeing randomized.

Activity Based Selection—Audio Detection

For this methodology, the selection of a particular video capture device160 depends on whether or not that device is capturing any kind ofsignificant audible activity, relative to the other video capturedevices 160 in the area. Thus, the automatic switching methodology andselection of a particular video capture device 160 is based on voiceactivity detected by the microphone of that device. In a simple setupwhere there are two speakers S1 and S2 located in front of two camerasC1 and C2, respectively, the automatic switching methodology shouldresult in the following: (1) if S1 is speaking, then C1 is automaticallyselected; (2) if S2 is speaking, then C2 is automatically selected; (3)if both S1 and S2 are speaking at about the same level or volume, theneither C1 or C2 is automatically selected; (4) if both S1 and S2 arespeaking at significantly or detectably different levels or volumes,then the camera associated with the loudest speaker is automaticallyselected. Accordingly, in a video conferencing system having multiplecameras pointing towards one or more users, the automaticselection/switching is performed to identify the camera corresponding tothe user who is currently speaking.

The specific audio detection scheme, methodology, and algorithm may varyfrom one implementation to another, and from one system configuration toanother. An exemplary audio based automatic selection scheme isdescribed here as one suitable example. The methodology presented hereis based on root mean square (RMS) energy and average monitoring of theRMS energy.

The RMS energy of the captured audio is considered to be the primaryfactor in deciding whether a particular camera is capturing voiceactivity. In a loose sense, the RMS energy of the audio refers to theamount of continuous energy present in the audio signal as opposed topeak energy (which is the maximum energy or level present in the audiosignal). By monitoring the RMS energy of the audio signals captured byeach camera, it is possible to determine voice activity in each videofeed.

Audio based detection schemes can be challenging to implement for somepractical applications. For example, sensitivity can be problematic invoice based switching systems due to the following issues, andpotentially other issues: (1) different people naturally speak atdifferent levels; (2) the same person may modulate the volume of hisvoice depending on the circumstances; (3) the sensitivity rating orspecification of the microphones used by the video capture devices 160can vary from one device to another, from one manufacturer to another,from one device model to another, and the like. Another practicalchallenge relates to the physical layout and location of the videocapture devices 160. In this regard, the distance between the user andthe camera's microphone can affect the audio level captured by themicrophone. Another practical challenge relates to the presence anddetection of ambient sound in the surrounding environment, which maycontribute to the amount of audio energy captured by a microphone.Another practical challenge relates to device contention, whereinmultiple cameras can be active at any given point in time if there aredifferent users speaking at the same time.

The instantaneous RMS energy of an audio stream is the RMS energy valueof the audio at any given point in time. The average RMS energy of anaudio stream is the average of the instantaneous RMS energy values ofthe audio stream taken over a given time period. The average RMS energythat is calculated over a window that moves in time is defined as thewindow average RMS energy of the audio stream. In a practicalimplementation of the system, by monitoring the window average EMSenergy of the audio stream, any changes in the RMS energy of the audiostream can be detected. Because the average is monitored, sudden andmomentary changes in the RMS energy will not affect the automaticswitching/selection decision.

The time windowing mentioned above can be implemented in at least twoways: (1) a window of fixed length where the start and end points of thewindow “shift” with the passage of time; and (2) a window having a fixedstart point and an end point that moves with the passage of time. Inboth implementations, with every new instant of time, a new average RMSenergy value is calculated. The latest average RMS energy value in thewindow corresponds to the value calculated at that instant of time. Theother values in the window are considered the historical data or pastvalues at that instant of time. In the case of a window of fixed length,the decision is affected only by the values that are currently in thewindow and is better than a window having a fixed starting point becausein a window with a fixed starting point, as time progresses, thedecisions are affected by values that were calculated a very long timeago which may become undesirable.

Relative Decision—Since the sensitivity of different cameras varies, itis not feasible to directly compare the absolute RMS energy values ofone camera to another. To overcome this challenge, the automaticdecision is made by comparing the average RMS energy values of a camerawith historical values of that same camera. In this context, thehistorical values refer to the average RMS energy values that havealready been calculated in the past, and are part of the time window ofinterest. The decision for each camera system is arrived atindependently, and then the final decision is made based on theindividual decisions. For example, in a simple system with only twocameras (C1 and C2), the audio from the cameras (A1 and A2,respectively) is analyzed independently. The average RMS energy valuesof A1 and A2 (E1 and E2, respectively) are calculated for a given windowlength, N. If at any given time C1 is capturing voice activity and C2 isnot, then the independent decisions (D1 and D2, respectively) would beD1=1 and D2=0. According to this nomenclature, a switching/selectiondecision of D=1 means that the camera is selected, and aswitching/selection decision of D=0 means that the camera is notselected. Therefore, for this example, camera C1 is automaticallyselected, and camera C2 is not selected.

Automatic Thresholding—The system can perform monitoring to determinethresholds and counter sensitivity. In this regard, the decisions (D1and D2) are made based on whether the average RMS energy values of C1and C2 change by a certain threshold value. Since the sensitivities aredifferent, the same threshold value cannot be used for differentcameras. Instead, a relative threshold is determined for each camera inthe system. The relative threshold can be arrived at by initiallymonitoring the audio stream for a short duration of time to establishthe base audio level.

Minimum Duration—At any given point, more than one camera can be active.Depending on the relative thresholds, there might be a continuousswitching between multiple cameras within a short period of time. Thisartifact is undesirable. To avoid this, the system can utilize a minimumswitching duration. In this regard, after automatically switching to aparticular camera, that camera will remain selected for at least aminimum period of time regardless of the detected audio levels. Thisfeature can be implemented by suspending audio processing of the videofeeds for the desired amount of time.

Default Camera—As mentioned previously, there might be a scenario wheremultiple cameras are active at a given time. One possible solution tothis challenge is to automatically select only one of the activecameras. However, if there is a camera present in the system that iscapturing video of all active speakers, then the system canautomatically select that camera (instead of another camera that iscapturing video of only one user, or is capturing video of less than allof the actively speaking users). A camera selected in this manner can bedesignated as the default camera. The default camera can beautomatically selected when multiple cameras are in contention.

An exemplary implementation of an audio based automatic camera selectionmethodology will now be described. For an N-camera system, the audiostreams from each camera are separated to obtain the individual audiostreams A₁-A_(N). For each audio stream, the instantaneous RMS energy,E_(i) is calculated, where “i” denotes the time instant. At the start ofthe system, for a given time duration T, the instantaneous RMS energy ofeach audio stream is monitored to obtain the base level, E₀. Based onthis, the individual threshold for each camera is calculated asT_(x)=f(E_(x)), for x=1 . . . N. Once the threshold are calculated, thedecision phase begins. This methodology can be utilized to calculatedevice-specific energy threshold values during an initial trainingperiod that is associated with an operating session of the system and/orthe video capture devices. Training to obtain the threshold values maybe performed whenever the video production system is set up for a newevent, on demand or upon user request, according to a schedule, or thelike. In practice, the thresholds can be obtained empirically during themonitoring phase (automatic thresholding). Thresholds in the range ofabout 130% to 140% of the base level can be used in a typicalapplication.

During the decision phase, for each instantaneous RMS energy valuesample, given the window length, SAMPLE_WINDOW_LENGTH and cumulativeaverage window length, CUMULATIVE_AVERAGE_WINDOW_LENGTH, the windowmoves by one sample. Accordingly, Cumulative Average Including NewSample=Total Sum/Total Length, where TotalSum=CUMULATIVE_AVERAGE_WINDOW_LENGTH. In these expressions,SAMPLE_WINDOW_LENGTH is the window length used to obtain new RMS energyvalues. For example, if the audio is sampled once every 30 milliseconds,then a window length of 33 would hold the RMS energy values of 1 secondworth of audio. The term CUMULATIVE_AVERAGE_WINDOW_LENGTH is the windowlength used to obtain average RMS energy values. This will be largerthan the SAMPLE_WINDOW_LENGTH; usually an integral multiple. As onenon-limiting example, if SAMPLE_WINDOW_LENGTH=33, thenCUMULATIVE_AVERAGE_WINDOW_LENGTH would be 180. Total Length is the totalwindow length, which in this case is the same as theCUMULATIVE_AVERAGE_WINDOW_LENGTH.

Starting with a cumulative sum of zero, to detect when the RMS energy ofthe audio stream increases beyond its corresponding threshold, thecumulative sum for each sample is calculated as MAX(0, PreviousCumulative Sum+Current Sample−Tolerance Factor), where Tolerance Factoris

$\frac{T_{x}}{2}.$

This means that for each sample that is greater than the previousaverage, the cumulative sum increases by a factor of (CurrentSample−Tolerance Factor). If the audio stream includes continuoussamples of high RMS energy compared to its previous values, then thecumulative sum steadily increases over time. The Tolerance Factor can beadjusted based on how fast a decision has to be made by compromising onaccuracy. For example, if a faster decision is required, then theTolerance Factor can be set to zero.

Once the values for all the cameras are calculated, the individualdecisions D₁-D_(N) are obtained based on whether the cumulative sum fora particular camera is above the threshold. With this, the finaldecision is made as follows. Based on the individual decisions,determine the subset of cameras, C_(p), for which D_(x)=1. From allcameras where D_(x)=0, find the subset of cameras, Cq, where thecumulative sum for a particular camera is greater than half thecorresponding threshold. Then:

-   -   If (MAX CUMULATIVE SUM (C_(p))−MAX CUMULATIVE SUM        (C_(q))<Contention Resolution Threshold, Switch to Default        Camera    -   Else, Switch to MAX CUMULATIVE SUM (C_(p))

This process is repeated for each new sample. To avoid frequentswitching when multiple cameras are active, the default camera is givena higher precedence by enforcing that after switching to the defaultcamera, there will not be another change for at least a minimum durationof time T_(min). As a non-limiting example, the minimum duration of timefor the default camera might be five seconds, while the minimum durationof time for other cameras (non-default cameras) might be only twoseconds.

FIG. 4 is a flow chart that illustrates tasks associated with anaudio-based camera switching process 500. For ease of description, theprocess 500 will be described with reference to one video stream. Inpractice, the process 500 can handle and analyze multiple video streamsin a concurrent manner. The illustrated embodiment of the process 500measures the instantaneous RMS audio energy value of the video inputstream, for each time sample (task 502). The process 500 continues bydetermining the average RMS audio energy value over a period of time,e.g., the cumulative period of time associated with operation of thevideo production system (task 504). In practice, a device-specificaverage RMS value is calculated for each video capture device ofinterest.

The average RMS audio energy value determined at task 504 is comparedagainst a respective device-specific energy threshold value (task 506).As mentioned above, the threshold value serves as an indicator ortrigger for purposes of detecting whether the video stream contains anamount of sound energy that might be associated with an active speaker.Therefore, if the process 500 detects high RMS energy (the “Yes” branchof query task 508), then the system identifies the video stream as beingassociated with an active speaker (task 510). For this particularembodiment, high RMS energy is indicated when the device-specificaverage RMS value for the video capture device exceeds the respectivedevice-specific energy threshold value for that video capture device. Ifhigh RMS energy is not detected (the “No” branch of query task 508),then the process 500 continues by analyzing the next video input stream(task 514) in the manner described above.

Eventually, the process 500 considers all of the video streams ofinterest and identifies which of the video input streams is associatedwith an active speaker. The process 500 automatically selects one of theidentified video input streams for use as the current video outputstream (task 512). The system continues by providing the selected videostream as the output stream for production or editing, as describedpreviously.

Activity Based Selection—Visual Detection

For this methodology, the selection of a particular video capture device160 depends on whether or not the video content captured by that deviceindicates a certain amount of movement or motion (of a speaker's mouth,lips, facial expression, etc.), relative to the video feeds of the othervideo capture devices 160 in the area.

Visual activity based automatic switching considers the amount and/orcharacteristics of detected visual activity. To identify the activespeaker, facial features of the speaker are extracted from the capturedvideo stream. This is accomplished by identifying faces present in thevideo frame. Once the faces are identified, bounding boxes for facialregions are created. Using the bounding boxes, the region of interest(in this case, the mouth region) is extracted using machine learningmodels that are trained to extract facial features from the video frame.From the extracted mouth region, a set of coordinates that describe theupper lip and lower lip positions are calculated. Using thesecoordinates, the ratio of the distances between the upper lip and thelower lip is calculated. By monitoring the variation in this ratio overtime, it can be determined whether the captured video includes containsan active speaker.

An exemplary implementation of a visual based automatic camera selectionmethodology will now be described. For an N-camera system, the videostreams from each camera are separated to obtain the individual videostreams V₁-V_(N). For each video stream, a face detection or facialfeature detection methodology is utilized, such as the Histogram ofOriented Gradients (HOG) method. For each detected face, the facialfeatures are extracted using a facial landmark extraction model. The HOGmethod and facial landmark extraction models are known, and theexemplary embodiment described here can leverage suitable methodologiesas needed.

For this description, H_(L) and H_(R) denote the positions of thecorners of the mouth on the left and right sides, and V_(T) and V_(B)denote the positions of the top and bottom parts of the lips. Thedistance ratio is given by the following expression:

$\frac{\left( {V_{T} - V_{B}} \right)}{\left( {H_{L} - H_{R}} \right)}.$

If the speaker's lips are closed, then the distance ratio will be closeto zero; otherwise it will be a positive number. For each video stream,the variation of the distance ratio is calculated continuously during awindow of time. In practice, the distance ratio can be calculated foreach video frame (if, for example, the video feed includes 30 frames persecond, then the distance ratio can be calculated up to 30 times persecond if so desired). If the variation from one sample to the nextsample exceeds a threshold value, then the corresponding camera isautomatically selected under the assumption that the detected movementof the lips/mouth indicates an active speaker. If more than one videofeed indicates an active speaker determined by this methodology, thenthe system can automatically select the camera that corresponds to thehighest calculated distance ratio.

FIG. 5 is a flow chart that illustrates tasks associated with a cameraswitching process 600 that is based on detected facial features. Process600 represents one exemplary embodiment of a visual activity basedswitching technique that identifies and analyzes facial features andcharacteristics that are captured in the video input streams. For easeof description, the process 600 will be described with reference to onevideo stream. In practice, the process 600 can handle and analyzemultiple video streams in a concurrent manner. The illustratedembodiment of the process 600 identifies the left and right cornerpositions of the subject's mouth (task 602), and identifies thesubject's top and bottom lip positions (task 604). These identifiedfeatures are used to calculate the distance ratio for the current sampletime (task 606), in accordance with the expression described above.

The process 600 continues by comparing the distance ratio calculated forthe current sample time against at least one historical distance ratio,which is calculated for a previous sample time (task 608). If thevariation in the distance ratio is high (i.e., it exceeds apredetermined threshold value), then the “Yes” branch of query task 610leads to a task 612. If not, then the next video stream of interest isanalyzed (task 616). At task 612, the process 600 identifies the videostream as being associated with a detected speaker (due to the highsample-to-sample variation in the calculated distance ratios). Theidentified video stream is automatically selected to serve as thecurrent video output stream (task 614).

In certain scenarios, the methodology described above may correctlydetect multiple speakers, corresponding to a plurality of differentvideo streams and different video capture devices. In such scenarios,the process 600 may determine which of the video input streamscorresponds to a highest calculated distance ratio and automaticallyselect that video input stream as the current video output stream. Thisfeature assumes that a higher distance ratio is indicative of a moreactive speaker and/or a louder speaker. In practice, the system mayemploy other techniques and methodologies to resolve ambiguity orconflicts, and to otherwise choose one video stream from a plurality ofviable candidate streams.

Activity Based Selection—Hybrid Audio/Visual Detection

For this methodology, the selection of a particular video capture device160 is based on a combination of the audio detection and visualdetection schemes described above. A hybrid approach helps in makingreinforced decisions and improves the automatic switching accuracy. Theaudio and video streams captured by a camera are separated andindependently processed. The outcome of the independent processing (inthe manner described above) is used to arrive at the final decision. Forexample, if the audio based methodology identifies two or moreselectable cameras, then the visual based methodology can provideadditional information for use in the selection process. Conversely, ifthe visual based methodology identifies two or more selectable cameras,then the audio based methodology can provide additional information foruse in the selection process.

Typical Use Cases

The automatic selection techniques described above can be utilized inthe context of different environments, scenarios, and applications. Thefollowing are exemplary use cases for the described methodologies; otheruse cases can be supported if so desired.

Scenario 1: Interview

An interview scenario includes front facing video capture devicesfocused on the individual participants. The video capture devices arelocated in the same environment, such as an office or a conference room.

Scenario 2: Remote Conferencing

A remote conference includes a plurality of users with front facingvideo capture devices focused on the individual participants. Thesevideo capture devices are located in the same environment, such as anoffice or a conference room. At least one remote user is supported.Moreover, the operating environment includes a default video capturedevice that is set to capture some or all of the users in the sharedenvironment. The automatic selection routine can switch between theindividual cameras and the default camera as needed.

Scenario 3: Discussion Room

A discussion scenario may include front facing video capture devicesfocused on the individual participants. The video capture devices arelocated in the same environment, such as an office or a conference room.The video feeds capture an ongoing discussion between the users.

Scenario 4: Discussion Between Different Locations

In this scenario, users are physically located in different rooms.Accordingly, the distance between the camera and the user does notaffect automatic switching. Moreover, environmental noise and“crosstalk” are less problematic. Nonetheless, the automatic cameraselection methodologies described herein can still be utilizedeffectively.

The methodologies and processes described herein are automated in thatthey are performed by a computer-implemented or processor-implementeddevice. Depending on the particular system configuration and devicespecifications, the processing may take place at the video productiondevice 110, the control device 130, and/or one more of the video capturedevices 160. In accordance with certain exemplary embodiments, theautomatic camera switching/selection intelligence and processing powerresides at the video production device 110. In alternative embodiments,the automatic camera switching/selection intelligence and processingpower resides at the control device 130. In certain implementations(e.g., those that rely on visual detection schemes), the video capturedevices 160 can be leveraged and utilized to perform theprocessor-intensive analysis and handling of the source video data. Inthis regard, a suitably designed mobile app running on a video capturedevice 160 can perform at least some of the functions described here.

While at least one exemplary embodiment has been presented in theforegoing detailed description, it should be appreciated that a vastnumber of variations exist. It should also be appreciated that theexemplary embodiment or embodiments described herein are not intended tolimit the scope, applicability, or configuration of the claimed subjectmatter in any way. Rather, the foregoing detailed description willprovide those skilled in the art with a convenient road map forimplementing the described embodiment or embodiments. It should beunderstood that various changes can be made in the function andarrangement of elements without departing from the scope defined by theclaims, which includes known equivalents and foreseeable equivalents atthe time of filing this patent application.

1. An automated method of controlling a video production device thatproduces a video production stream of an event from a plurality of videoinput streams that are captured by a plurality of different videocapture devices, the method comprising: receiving, by the videoproduction device, the plurality of video input streams from theplurality of different video capture devices; automatically identifyingless than all of the plurality of different video capture devices byomitting redundant video capture devices, low quality video capturedevices, or video capture devices capturing the event from anundesirable location, wherein the identifying results in a subset of theplurality of video input streams; automatically selecting from thesubset of the plurality of video input streams, by the video productiondevice, one of the plurality of video input streams for use as a currentvideo output stream, in accordance with a predetermined switchingsequence associated with the plurality of different video capturedevices; providing, by the video production device, the selected videoinput stream as the current video output stream for a designated timeinterval associated with the video capture device that captured theselected video input stream, wherein each of the different video capturedevices is associated with a respective time interval; and operating thevideo production device to automatically cycle through the subset of theplurality of video input streams in accordance with the predeterminedswitching sequence, to designate which of the plurality of video inputstreams is used for the current video output stream.
 2. The method ofclaim 1, further comprising the step of producing the current videooutput stream for storage or live streaming.
 3. The method of claim 1,wherein: the event is captured by N different video capture devices; andthe predetermined switching sequence identifies each of the N differentvideo capture devices at least once.
 4. The method of claim 1, wherein:the event is captured by N different video capture devices; and thepredetermined switching sequence identifies less than N of the differentvideo capture devices.
 5. The method of claim 1, wherein the timeintervals associated with the video capture devices areuser-configurable.
 6. The method of claim 1, wherein the time intervalsassociated with the video capture devices are randomly assigned.
 7. Avideo production device for producing a video production stream of anevent occurring within an environment that includes a plurality ofdifferent video capture devices capturing respective video input streamsof the event, the video production device comprising: a processorhardware device; and a memory storage device to storeprocessor-executable instructions that are configurable to be executedby the processor hardware device to perform a method comprising thesteps of: receiving, by the video production device, a plurality ofvideo input streams from the plurality of different video capturedevices; automatically identifying less than all of the plurality ofdifferent video capture devices by omitting redundant video capturedevices, low quality video capture devices, or video capture devicescapturing the event from an undesirable location, wherein theidentifying results in a subset of the plurality of video input streams;automatically selecting from the subset of the plurality of video inputstreams, by the video production device, one of the plurality of videoinput streams for use as a current video output stream, in accordancewith a predetermined switching sequence associated with the plurality ofdifferent video capture devices; providing, by the video productiondevice, the selected video input stream as the current video outputstream for a designated time interval associated with the video capturedevice that captured the selected video input stream, wherein each ofthe different video capture devices is associated with a respective timeinterval; and operating the video production device to automaticallycycle through the subset of the plurality of video input streams inaccordance with the predetermined switching sequence, to designate whichof the plurality of video input streams is used for the current videooutput stream.
 8. The video production device of claim 7, wherein: theevent is captured by N different video capture devices; and thepredetermined switching sequence identifies each of the N differentvideo capture devices at least once.
 9. The video production device ofclaim 7, wherein: the event is captured by N different video capturedevices; and the predetermined switching sequence identifies less than Nof the different video capture devices.
 10. The video production deviceof claim 7, wherein the time intervals associated with the video capturedevices are user-configurable.
 11. The video production device of claim7, wherein the time intervals associated with the video capture devicesare randomly assigned.
 12. A video production system comprising: aplurality of video capture devices; and a video production device towirelessly communicate with the plurality of video capture deviceswithin a wireless network established by the video production device,the video production device comprising a processor hardware device and amemory storage device to store processor-executable instructions thatare configurable to be executed by the processor hardware device toperform a method comprising the steps of: receiving, by the videoproduction device, a plurality of video input streams from the pluralityof different video capture devices; automatically identifying less thanall of the plurality of video capture devices by omitting redundantvideo capture devices, low quality video capture devices, or videocapture devices capturing the event from an undesirable location,wherein the identifying results in a subset of the plurality of videoinput streams; automatically selecting from the subset of the pluralityof video input streams, by the video production device, one of theplurality of video input streams for use as a current video outputstream, in accordance with a predetermined switching sequence associatedwith the plurality of different video capture devices; providing, by thevideo production device, the selected video input stream as the currentvideo output stream for a designated time interval associated with thevideo capture device that captured the selected video input stream,wherein each of the different video capture devices is associated with arespective time interval; and operating the video production device toautomatically cycle through the subset of the plurality of video inputstreams in accordance with the predetermined switching sequence, todesignate which of the plurality of video input streams is used for thecurrent video output stream.
 13. The video production system of claim12, wherein the method performed by the processor hardware devicefurther comprises the step of producing the current video output streamfor storage or live streaming.
 14. The video production system of claim12, wherein: the event is captured by N different video capture devices;and the predetermined switching sequence identifies each of the Ndifferent video capture devices at least once.
 15. The video productionsystem of claim 12, wherein: the event is captured by N different videocapture devices; and the predetermined switching sequence identifiesless than N of the different video capture devices.
 16. The videoproduction system of claim 12, wherein the time intervals associatedwith the video capture devices are user-configurable.
 17. The videoproduction system of claim 12, wherein the time intervals associatedwith the video capture devices are randomly assigned. 18-20. (canceled)